package org.jctc.els.modules.biz.entity.projects;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

import java.util.Date;

/**
 * 项目表
 *
 * @author : Ice
 * @date : 2022-6-21
 */
@Data
@TableName("els_projects")
@EqualsAndHashCode(callSuper = true)
public class ElsProjects extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 项目编号
     */
    @ApiModelProperty(name = "项目编号")
    @TableField(value = "project_number")
    private String projectNumber;

    @TableField(value = "project_review_id")
    private Long projectReviewId;

    /**
     * 单位名称
     */
    @ApiModelProperty(name = "单位名称")
    private String orgName;
    /**
     * 项目所属单位
     */
    @ApiModelProperty(name = "项目所属单位")
    private String projectOrgName;
    /**
     * 项目名称
     */
    @ApiModelProperty(name = "项目名称")
    private String projectName;
    /**
     * 一级分类
     */
    @ApiModelProperty(name = "一级分类")
    private String category1;
    /**
     * 二级分类
     */
    @ApiModelProperty(name = "二级分类")
    private String category2;
    /**
     * 三级分类
     */
    @ApiModelProperty(name = "三级分类")
    private String category3;

    /**
     * 年份
     */
    @ApiModelProperty(name = "年份")
    private Integer year;

    /**
     * 实施范围
     */
    @ApiModelProperty(name = "实施范围")
    private String implementScope;
    /**
     * 项目必要性
     */
    @ApiModelProperty(name = "项目必要性")
    private String projectNecessity;
    /**
     * 立项原因
     */
    @ApiModelProperty(name = "立项原因")
    private String createProjectReason;
    /**
     * 房产编号
     */
    @ApiModelProperty(name = "房产编号")
    private String propertyNumber;
    /**
     * 房产性质
     */
    @ApiModelProperty(name = "房产性质")
    private String propertyType;
    /**
     * 采购类别
     */
    @ApiModelProperty(name = "采购类别")
    private String purchaseCategory;
    /**
     * 竣工时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    @ApiModelProperty(name = "竣工时间")
    private Date completionTime;
    /**
     * 开工时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    @ApiModelProperty(name = "开工时间")
    private Date openTime;
    /**
     * 项目层级
     */
    @ApiModelProperty(name = "项目层级")
    private String projectLevel;
    /**
     * 培训类别
     */
    @ApiModelProperty(name = "培训类别")
    @TableField(value = "training_catetory")
    private String trainingCategory;
    /**
     * 专业类别
     */
    @ApiModelProperty(name = "专业类别")
    private String specializedCategory;
    /**
     * 培训类型
     */
    @ApiModelProperty(name = "培训类型")
    private String trainingType;
    /**
     * 培训形式
     */
    @ApiModelProperty(name = "培训形式")
    private String trainingMode;
    /**
     * 培训对象
     */
    @ApiModelProperty(name = "培训对象")
    private String trainingObject;
    /**
     * 项目主要内容*
     */
    @ApiModelProperty(name = "项目主要内容")
    private String content;
    /**
     * 培训期数（班次）
     */
    @ApiModelProperty(name = "培训期数（班次）")
    private String trainingPhase;
    /**
     * 每期天数
     */
    @ApiModelProperty(name = "每期天数")
    private Integer phaseDays;
    /**
     * 每期人数
     */
    @ApiModelProperty(name = "每期人数")
    private Integer phasePeoples;
    /**
     * 总人数
     */
    @ApiModelProperty(name = "总人数")
    private Integer totalPeoples;
    /**
     * 总人天
     */
    @ApiModelProperty(name = "总人天")
    private Integer totalDays;
    /**
     * 培训时间(月份)
     */
    @ApiModelProperty(name = "培训时间(月份)")
    private String trainingMonth;
    /**
     * 申请部门
     */
    @ApiModelProperty(name = "申请部门")
    private String deptApply;
    /**
     * 主办部门
     */
    @ApiModelProperty(name = "主办部门")
    private String deptHost;
    /**
     * 承办单位
     */
    @ApiModelProperty(name = "承办单位")
    private String orgBy;
    /**
     * 定额费用
     */
    @ApiModelProperty(name = "定额费用")
    private Double fixedCost;
    /**
     * 参培学员差旅费
     */
    @ApiModelProperty(name = "参培学员差旅费")
    private Double travelExpenses;
    /**
     * 总费用（预算）
     */
    @ApiModelProperty(name = "总费用（预算）")
    private Double totalCost;
    /**
     * 经费来源渠道
     */
    @ApiModelProperty(name = "经费来源渠道")
    private String fundSource;
    /**
     * 费用类型
     */
    @ApiModelProperty(name = "费用类型")
    private String costType;
    /**
     * 培训地点
     */
    @ApiModelProperty(name = "培训地点")
    private String trainingPlace;
    /**
     * 责任人
     */
    @ApiModelProperty(name = "责任人")
    private String leader;
    /**
     * 联系人
     */
    @ApiModelProperty(name = "联系人")
    private String contacts;
    /**
     * 学分
     */
    @ApiModelProperty(name = "学分")
    private Double score;
    /**
     * 备注
     */
    @ApiModelProperty(name = "备注")
    private String remark;
    /**
     * 回退备注
     */
    @ApiModelProperty(name = "回退备注")
    private String fallbacktRemark;
    /**
     * 企业编码
     */
    @ApiModelProperty(name = "企业编码")
    private String enterpriseCode;
    /**
     * 可研评审意见
     */
    @ApiModelProperty(name = "可研评审意见")
    private String feasibilityStudyReviewComments;
    /**
     * 可研评审意见文号
     */
    @ApiModelProperty(name = "可研评审意见文号")
    private String feasibilityStudyReviewCommentsNumber;
    /**
     * 可研批复文号
     */
    @ApiModelProperty(name = "可研批复文号")
    private String feasibilityStudyReplyComments;
    /**
     * 等级
     */
    @ApiModelProperty(name = "等级")
    private String grade;
    /**
     * 国网评分
     */
    @ApiModelProperty(name = "国网评分")
    private Double stateGridScore;
    /**
     * 省级单位评分
     */
    @ApiModelProperty(name = "省级单位评分")
    private Double provincialOrgScore;
    /**
     * 下级单位评分
     */
    @ApiModelProperty(name = "下级单位评分")
    private Double subOrgScore;
    /**
     * 审核结果
     */
    @ApiModelProperty(name = "审核结果")
    private String authResult;
    /**
     * 审核结果的说明
     */
    @ApiModelProperty(name = "审核结果的说明")
    private String authResultNote;
    /**
     * 项目类别;1=>职工培训项目
     * 2=>人才评价培训项目
     * 4=>培训开发项目
     * 8=>培训购置项目
     * 16=>生产辅助技改(大修)项目
     */
    @ApiModelProperty(name = "项目类别", notes = "1=>职工培训项目 2=>人才评价培训项目 4=>培训开发项目8=>培训购置项目16=>生产辅助技改(大修)项目")
    private Integer projectCategory;
    /**
     * 项目类型;1=>可研报告评审  2=>开发方案评审  3=>项目资料评审
     */
    @ApiModelProperty(name = "项目类型", notes = "1=>可研报告评审  2=>开发方案评审  3=>项目资料评审")
    private Integer projectType;
    /**
     * 状态;0=>默认值  1=>已评分/待组长审核  2=>组长审核通过/待管理员审核  99=>已完成
     */
    @ApiModelProperty(name = "状态", notes = "0=>默认值  1=>已评分/待组长审核  2=>组长审核通过/待管理员审核  99=>已完成")
    private Integer status;
    /**
     * 乐观锁
     */
    @ApiModelProperty(name = "乐观锁")
    private Long revision;

    @ApiModelProperty(name = "所属地市公司")
    private Long deptId;


    @ApiModelProperty(name = "被删除的时间")
    private Date deleteTime;


    /** 管理员审核;1=>通过  2=>退回 */
    @ApiModelProperty(name = "管理员审核",notes = "1=>通过  2=>退回")
    @TableField(exist = false)
    private Integer adminAuthResult ;
    /** 管理员审核结果说明 */
    @ApiModelProperty(name = "管理员审核结果说明",notes = "")
    @TableField(exist = false)
    private String adminAuthResultRemark ;
    /** 管理员最后一次审核时间 */
    @ApiModelProperty(name = "管理员最后一次审核时间",notes = "")
    @TableField(exist = false)
    private Date adminAuthResultLastTime ;
    /** 小组组长审核;1=>通过  2=>退回 */
    @ApiModelProperty(name = "小组组长审核",notes = "1=>通过  2=>退回")
    @TableField(exist = false)
    private Integer leaderAuthResult ;
    /** 小组组长审核说明 */
    @ApiModelProperty(name = "小组组长审核说明",notes = "")
    @TableField(exist = false)
    private String leaderAuthResultRemark ;
    /** 小组组长最后一次审核时间 */
    @ApiModelProperty(name = "小组组长最后一次审核时间",notes = "")
    @TableField(exist = false)
    private Date leaderAuthResultLastTime ;
    /** 状态;0=>未评  1=>已评 */
    @ApiModelProperty(name = "审核状态",notes = "0=>未评  1=>已评")
    @TableField(exist = false)
    private Integer authStatus ;

    /**
     * 审核状态：0=>地市专责未提交 1=> 地市专责已提交   2=> 地市管理员已审核 3=> 地市管理员已提交
     */
    @ApiModelProperty(name = "审核状态",notes = "0=>地市专责未提交 1=> 地市专责已提交   2=> 地市管理员已审核 3=> 地市管理员已提交 4=> 专家已审核 5=> 专家已提交  6=>省公司已审核")
    private Integer auditStatus ;
    /**
     * 回退标识
     */
    private Integer isFallbackt ;



}